package cn.com.dhcc.turbo.service.transport;

import org.springframework.stereotype.Component;

import cn.com.dhcc.app.core.util.Status;
import cn.com.dhcc.turbo.entity.exch.QueueMsgWrapper;

/**
 * 传输管道接口
 */
@Component
public interface TransportPipeline {
	
	
	/***
	 * 
	 * @param data 要传入的数据
	 * @param fromCode 传输通道的起点
	 * @param toCode   传输通道的终点
	 * @param exchageLifecycle 传输的类型
	 * @return
	 */
	public Status sendData(Object data,String fromCode,String toCode,QueueMsgWrapper.ExchageLifecycle exchageLifecycle);
	
	public Status sendLog(Object data,String fromCode,String toCode,QueueMsgWrapper.ExchageLifecycle exchageLifecycle);
	
	/*
	*//**
	 * 将数据发送至目的节点
	 * @param data
	 * @return
	 *//*
	public Status sendData(Object data);
	
	*//**
	 * 将数据发送至外网网闸节点
	 * @param data
	 * @return
	 *//*
	public Status sendDataToOuterSendPipeline(Object data);
	
	*//**
	 * 将路由状态信息反馈给源节点
	 * @param data
	 * @return
	 *//*
	public Status sendSendStatusAndRouteLog(Object data);
	
	*//**
	 * 外网网闸节点将路由状态信息反馈给源节点
	 * @param data
	 * @return
	 *//*
	public Status sendSendStatusAndRouteLogToSendNode(Object data);
	
	
	*//**
	 * 目的节点将路由状态反馈给内网网闸节点
	 * @param data
	 * @return
	 *//*
	public Status sendSendStatusAndRouteLogToInnerEntrepot(Object data);

	*//**
	 * 将反馈结果发送给目的节点
	 * @param data
	 * @return
	 *//*
	public Status sendNofityStatusAndRoutLog(Object data);
	public Status sendNofityStatusAndRoutLog(Object data,NodeInfo localNode);
	*//**
	 * 将反馈结果发送给目的节点
	 * @param data
	 * @return
	 *//*
	public Status sendNofityStatusAndRoutLogToOuterEntrepot(Object data);
	
	public Status sendDataToOuterSendPipeline(Object data,NodeInfo sendNodeInfo,NodeInfo toNodeInfo) ;*/
}
